/**
 * $Id: GHOST_Types.java,v 1.1.1.1 2009/07/11 21:55:06 jladere Exp $
 * ***** BEGIN GPL LICENSE BLOCK *****
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
 * All rights reserved.
 *
 * The Original Code is: all of this file.
 *
 * Contributor(s): none yet.
 *
 * ***** END GPL LICENSE BLOCK *****
 */

package blender.ghost;

//#ifndef _GHOST_TYPES_H_
//#define _GHOST_TYPES_H_
//
public class GhostTypes {
//typedef	char				GHOST_TInt8;
//typedef	unsigned char		GHOST_TUns8;
//typedef short				GHOST_TInt16;
//typedef unsigned short		GHOST_TUns16;
//typedef	int					GHOST_TInt32;
//typedef	unsigned int		GHOST_TUns32;
//
//#ifdef WIN32
//#define WM_BLND_NDOF_AXIS	WM_USER + 1
//#define WM_BLND_NDOF_BTN 	WM_USER + 2
//#endif
//
//#if defined(WIN32) && !defined(FREE_WINDOWS)
//typedef __int64				GHOST_TInt64;
//typedef unsigned __int64	GHOST_TUns64;
//#else
//typedef long long			GHOST_TInt64;
//typedef unsigned long long	GHOST_TUns64;
//#endif
//
//typedef void*				GHOST_TUserDataPtr;
//
//typedef enum
//{
//	GHOST_kFailure = 0,
//	GHOST_kSuccess
//} GHOST_TSuccess;
//
///* Xtilt and Ytilt represent how much the pen is tilted away from
// * vertically upright in either the X or Y direction, with X and Y the
// * axes of the tablet surface.
// * In other words, Xtilt and Ytilt are components of a vector created by projecting
// * the pen's angle in 3D space vertically downwards on to the XY plane
// * --Matt
// */
//typedef struct GHOST_TabletData {
//	char Active; /* 0=None, 1=Stylus, 2=Eraser */
//	float Pressure;	/* range 0.0 (not touching) to 1.0 (full pressure) */
//	float Xtilt;	/* range 0.0 (upright) to 1.0 (tilted fully against the tablet surface) */
//	float Ytilt;	/* as above */
//} GHOST_TabletData;
//
//
//typedef enum {
//	GHOST_kNotVisible = 0,
//	GHOST_kPartiallyVisible,
//	GHOST_kFullyVisible
//} GHOST_TVisibility;
//
//
//typedef enum {
//	GHOST_kFireTimeNever = 0xFFFFFFFF
//} GHOST_TFireTimeConstant;
//
//typedef enum {
//    GHOST_kModifierKeyLeftShift = 0,
//    GHOST_kModifierKeyRightShift,
//    GHOST_kModifierKeyLeftAlt,
//    GHOST_kModifierKeyRightAlt,
//    GHOST_kModifierKeyLeftControl,
//    GHOST_kModifierKeyRightControl,
//    GHOST_kModifierKeyCommand,		// APPLE only
//    GHOST_kModifierKeyNumMasks
//} GHOST_TModifierKeyMask;
//
//
//typedef enum {
//	GHOST_kWindowStateNormal = 0,
//	GHOST_kWindowStateMaximized,
//	GHOST_kWindowStateMinimized,
//	GHOST_kWindowStateFullScreen,
//	GHOST_kWindowStateEmbedded,
//	GHOST_kWindowState8Normal = 8,
//	GHOST_kWindowState8Maximized,
//	GHOST_kWindowState8Minimized,
//	GHOST_kWindowState8FullScreen
//} GHOST_TWindowState;
//
//
//typedef enum {
//	GHOST_kWindowOrderTop = 0,
//	GHOST_kWindowOrderBottom
//} GHOST_TWindowOrder;
//
//
//typedef enum {
//	GHOST_kDrawingContextTypeNone = 0,
//	GHOST_kDrawingContextTypeOpenGL
//} GHOST_TDrawingContextType;
//
//
//typedef enum {
//	GHOST_kButtonMaskLeft = 0,
//	GHOST_kButtonMaskMiddle,
//	GHOST_kButtonMaskRight,
//	GHOST_kButtonNumMasks
//} GHOST_TButtonMask;


public static enum GHOST_TEventType {
	GHOST_kEventUnknown,

	GHOST_kEventCursorMove,		/// Mouse move event
	GHOST_kEventButtonDown,		/// Mouse button event
	GHOST_kEventButtonUp,		/// Mouse button event
	GHOST_kEventWheel,			/// Mouse wheel event

	GHOST_kEventNDOFMotion,		/// N degree of freedom device motion event
	GHOST_kEventNDOFButton,		/// N degree of freedom device button event

	GHOST_kEventKeyDown,
	GHOST_kEventKeyUp,
//	GHOST_kEventKeyAuto,

	GHOST_kEventQuit,

	GHOST_kEventWindowClose,
	GHOST_kEventWindowActivate,
	GHOST_kEventWindowDeactivate,
	GHOST_kEventWindowUpdate,
	GHOST_kEventWindowSize,
        GHOST_kEventWindowMove,

	GHOST_kEventTimer,

	GHOST_kNumEventTypes
};


//typedef enum {
//	GHOST_kStandardCursorFirstCursor = 0,
//	GHOST_kStandardCursorDefault = 0,
//	GHOST_kStandardCursorRightArrow,
//	GHOST_kStandardCursorLeftArrow,
//	GHOST_kStandardCursorInfo,
//	GHOST_kStandardCursorDestroy,
//	GHOST_kStandardCursorHelp,
//	GHOST_kStandardCursorCycle,
//	GHOST_kStandardCursorSpray,
//	GHOST_kStandardCursorWait,
//	GHOST_kStandardCursorText,
//	GHOST_kStandardCursorCrosshair,
//	GHOST_kStandardCursorUpDown,
//	GHOST_kStandardCursorLeftRight,
//	GHOST_kStandardCursorTopSide,
//	GHOST_kStandardCursorBottomSide,
//	GHOST_kStandardCursorLeftSide,
//	GHOST_kStandardCursorRightSide,
//	GHOST_kStandardCursorTopLeftCorner,
//	GHOST_kStandardCursorTopRightCorner,
//	GHOST_kStandardCursorBottomRightCorner,
//	GHOST_kStandardCursorBottomLeftCorner,
//	GHOST_kStandardCursorCustom,
//	GHOST_kStandardCursorNumCursors,
//	GHOST_kStandardCursorPencil
//} GHOST_TStandardCursor;
//
//
//typedef enum {
//	GHOST_kKeyUnknown = -1,
//	GHOST_kKeyBackSpace,
//	GHOST_kKeyTab,
//	GHOST_kKeyLinefeed,
//	GHOST_kKeyClear,
//	GHOST_kKeyEnter  = 0x0D,
//
//	GHOST_kKeyEsc    = 0x1B,
//	GHOST_kKeySpace  = ' ',
//	GHOST_kKeyQuote  = 0x27,
//	GHOST_kKeyComma  = ',',
//	GHOST_kKeyMinus  = '-',
//	GHOST_kKeyPeriod = '.',
//	GHOST_kKeySlash  = '/',
//
//	// Number keys
//	GHOST_kKey0 = '0',
//	GHOST_kKey1,
//	GHOST_kKey2,
//	GHOST_kKey3,
//	GHOST_kKey4,
//	GHOST_kKey5,
//	GHOST_kKey6,
//	GHOST_kKey7,
//	GHOST_kKey8,
//	GHOST_kKey9,
//
//	GHOST_kKeySemicolon = ';',
//	GHOST_kKeyEqual     = '=',
//
//	// Character keys
//	GHOST_kKeyA = 'A',
//	GHOST_kKeyB,
//	GHOST_kKeyC,
//	GHOST_kKeyD,
//	GHOST_kKeyE,
//	GHOST_kKeyF,
//	GHOST_kKeyG,
//	GHOST_kKeyH,
//	GHOST_kKeyI,
//	GHOST_kKeyJ,
//	GHOST_kKeyK,
//	GHOST_kKeyL,
//	GHOST_kKeyM,
//	GHOST_kKeyN,
//	GHOST_kKeyO,
//	GHOST_kKeyP,
//	GHOST_kKeyQ,
//	GHOST_kKeyR,
//	GHOST_kKeyS,
//	GHOST_kKeyT,
//	GHOST_kKeyU,
//	GHOST_kKeyV,
//	GHOST_kKeyW,
//	GHOST_kKeyX,
//	GHOST_kKeyY,
//	GHOST_kKeyZ,
//
//	GHOST_kKeyLeftBracket  = '[',
//	GHOST_kKeyRightBracket = ']',
//	GHOST_kKeyBackslash    = 0x5C,
//	GHOST_kKeyAccentGrave  = '`',
//
//
//	GHOST_kKeyLeftShift = 0x100,
//	GHOST_kKeyRightShift,
//	GHOST_kKeyLeftControl,
//	GHOST_kKeyRightControl,
//	GHOST_kKeyLeftAlt,
//	GHOST_kKeyRightAlt,
//    GHOST_kKeyCommand,				// APPLE only!
//    GHOST_kKeyGrLess ,		// German PC only!
//
//	GHOST_kKeyCapsLock,
//	GHOST_kKeyNumLock,
//	GHOST_kKeyScrollLock,
//
//	GHOST_kKeyLeftArrow,
//	GHOST_kKeyRightArrow,
//	GHOST_kKeyUpArrow,
//	GHOST_kKeyDownArrow,
//
//	GHOST_kKeyPrintScreen,
//	GHOST_kKeyPause,
//
//	GHOST_kKeyInsert,
//	GHOST_kKeyDelete,
//	GHOST_kKeyHome,
//	GHOST_kKeyEnd,
//	GHOST_kKeyUpPage,
//	GHOST_kKeyDownPage,
//
//	// Numpad keys
//	GHOST_kKeyNumpad0,
//	GHOST_kKeyNumpad1,
//	GHOST_kKeyNumpad2,
//	GHOST_kKeyNumpad3,
//	GHOST_kKeyNumpad4,
//	GHOST_kKeyNumpad5,
//	GHOST_kKeyNumpad6,
//	GHOST_kKeyNumpad7,
//	GHOST_kKeyNumpad8,
//	GHOST_kKeyNumpad9,
//	GHOST_kKeyNumpadPeriod,
//	GHOST_kKeyNumpadEnter,
//	GHOST_kKeyNumpadPlus,
//	GHOST_kKeyNumpadMinus,
//	GHOST_kKeyNumpadAsterisk,
//	GHOST_kKeyNumpadSlash,
//
//	// Function keys
//	GHOST_kKeyF1,
//	GHOST_kKeyF2,
//	GHOST_kKeyF3,
//	GHOST_kKeyF4,
//	GHOST_kKeyF5,
//	GHOST_kKeyF6,
//	GHOST_kKeyF7,
//	GHOST_kKeyF8,
//	GHOST_kKeyF9,
//	GHOST_kKeyF10,
//	GHOST_kKeyF11,
//	GHOST_kKeyF12,
//	GHOST_kKeyF13,
//	GHOST_kKeyF14,
//	GHOST_kKeyF15,
//	GHOST_kKeyF16,
//	GHOST_kKeyF17,
//	GHOST_kKeyF18,
//	GHOST_kKeyF19,
//	GHOST_kKeyF20,
//	GHOST_kKeyF21,
//	GHOST_kKeyF22,
//	GHOST_kKeyF23,
//	GHOST_kKeyF24
//} GHOST_TKey;
//
//
//typedef void* GHOST_TEventDataPtr;
//
//typedef struct {
//	/** The x-coordinate of the cursor position. */
//	GHOST_TInt32 x;
//	/** The y-coordinate of the cursor position. */
//	GHOST_TInt32 y;
//} GHOST_TEventCursorData;
//
//typedef struct {
//	/** The mask of the mouse button. */
//	GHOST_TButtonMask button;
//} GHOST_TEventButtonData;
//
//typedef struct {
//	/** Displacement of a mouse wheel. */
//	GHOST_TInt32 z;
//} GHOST_TEventWheelData;
//
//
///* original patch used floats, but the driver return ints and uns. We will calibrate in view, no sense on doing conversions twice */
///* as all USB device controls are likely to use ints, this is also more future proof */
////typedef struct {
////   /** N-degree of freedom device data */
////   float tx, ty, tz;   /** -x left, +y up, +z forward */
////   float rx, ry, rz;
////   float dt;
////} GHOST_TEventNDOFData;
//
//typedef struct {
//   /** N-degree of freedom device data v2*/
//   int changed;
//   GHOST_TUns64 client;
//   GHOST_TUns64 address;
//   GHOST_TInt16 tx, ty, tz;   /** -x left, +y up, +z forward */
//   GHOST_TInt16 rx, ry, rz;
//   GHOST_TInt16 buttons;
//   GHOST_TUns64 time;
//   GHOST_TUns64 delta;
//} GHOST_TEventNDOFData;
//
//typedef int     (*GHOST_NDOFLibraryInit_fp)();
//typedef void    (*GHOST_NDOFLibraryShutdown_fp)(void* deviceHandle);
//typedef void*   (*GHOST_NDOFDeviceOpen_fp)(void* platformData);
//
//// original patch windows callback. In mac os X version the callback is internal to the plug-in and post an event to main thead.
//// not necessary faster, but better integration with other events.
//
////typedef int     (*GHOST_NDOFEventHandler_fp)(float* result7, void* deviceHandle, unsigned int message, unsigned int* wParam, unsigned long* lParam);
////typedef void     (*GHOST_NDOFCallBack_fp)(GHOST_TEventNDOFDataV2 *VolDatas);
//
//typedef struct {
//	/** The key code. */
//	GHOST_TKey		key;
//	/** The ascii code for the key event ('\0' if none). */
//	char			ascii;
//} GHOST_TEventKeyData;
//
//typedef struct {
//	/** Number of pixels on a line. */
//	GHOST_TUns32	xPixels;
//	/** Number of lines. */
//	GHOST_TUns32	yPixels;
//	/** Numberof bits per pixel. */
//	GHOST_TUns32	bpp;
//	/** Refresh rate (in Hertz). */
//	GHOST_TUns32	frequency;
//} GHOST_DisplaySetting;
//
//
//#ifdef _WIN32
//typedef long GHOST_TEmbedderWindowID;
//#endif // _WIN32
//
//#ifndef _WIN32
//// I can't use "Window" from "<X11/Xlib.h>" because it conflits with Window defined in winlay.h
//typedef int GHOST_TEmbedderWindowID;
//#endif // _WIN32
//
///**
// * A timer task callback routine.
// * @param task The timer task object.
// * @param time The current time.
// */
//#ifdef __cplusplus
//class GHOST_ITimerTask;
//typedef void (*GHOST_TimerProcPtr)(GHOST_ITimerTask* task, GHOST_TUns64 time);
//#else
//struct GHOST_TimerTaskHandle__;
//typedef void (*GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__* task, GHOST_TUns64 time);
//#endif
//
//#endif // _GHOST_TYPES_H_
}
